import { defineStore } from 'pinia'

// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const userStore = defineStore('user', {
  // other options...
  state: () => ({
    username: 'jack',
    age: 18,
    hobby: ['sing', 'movie']
  }),
  getters: {
    nextAge: (state) => {
      return (n: number) => state.age + n
    }
  },
  actions: {
    // 这里只能写成普通函数， 不然this指向有问题
    setAdmin () {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          this.username = '管理员'
          console.log('设置成功')
          resolve('设置成功')
        }, 1000)
      })
    }
  }
})
